<?xml version="1.0" encoding="Windows-1251"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:root="http://www.kadm.org.ua/XMLSchema/root"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:date="http://www.kadm.org.ua/XMLSchema/date"
    xmlns:tipo="http://www.kadm.org.ua/XMLSchema/tipo"
    xmlns:ht="http://www.w3.org/1999/xhtml"
    xml:lang="ru">

    <xsl:output method="xml" version="1.0" encoding="Windows-1251" media-type="text/xhtml"/>

    <xsl:strip-space elements="*"/>

    <xsl:template match="*"/>

    <xsl:template match="ht:*">
        <xsl:element name="{local-name()}">
            <xsl:apply-templates select="@ht:*|@xml:*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="text()">
        <xsl:value-of select="."/>
    </xsl:template>

    <xsl:template match="@*">
        <xsl:attribute name="{name()}">
            <xsl:value-of select="."/>
        </xsl:attribute>
    </xsl:template>

    <xsl:template match="root:root">
        <html>
            <head>
                <base href="http://localhost/"/>
                <link rel="stylesheet" href="http://localhost/system/css/rfc.css" type="text/css"/>
            </head>
            <body>
            <div class="content">
                <xsl:apply-templates/>
            </div>
            </body>
        </html>
    </xsl:template>

    <xsl:template match="date:year">
        <xsl:element name="span">
            <xsl:apply-templates select="@*"/>
            <xsl:attribute name="class">
                <xsl:if test="@class">
                    <xsl:value-of select="@class"/><xsl:text> </xsl:text>
                </xsl:if>
                <xsl:text>date-year</xsl:text>
            </xsl:attribute>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="ht:section">
        <xsl:element name="div">
            <xsl:apply-templates select="@*"/>
            <xsl:attribute name="class">
                <xsl:if test="@class">
                    <xsl:value-of select="@class"/><xsl:text> </xsl:text>
                </xsl:if>
                <xsl:text>section</xsl:text>
            </xsl:attribute>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="ht:h">
        <xsl:variable name="deep">
            <xsl:value-of select="count(ancestor::ht:section)"/>
        </xsl:variable>
        <xsl:variable name="name">
            <xsl:text>h</xsl:text>
            <xsl:choose>
                <xsl:when test="$deep &lt; 6">
                    <xsl:value-of select="$deep"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>6</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:element name="{$name}">
            <xsl:apply-templates select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>


    <xsl:template name="getList">
        <xsl:param name="str" select="''"/>
        <xsl:call-template name="getListFromNormal">
            <xsl:with-param name="str" select="normalize-space($str)"/>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="getListFromNormal">
        <xsl:param name="str" select="''"/>
        <xsl:choose>
            <xsl:when test="contains($str, '&#x20;')">
                <xsl:element name="item">
                    <xsl:value-of select="substring-before($str, '&#x20;')"/>
                </xsl:element>
                <xsl:call-template name="getListFromNormal">
                    <xsl:with-param name="str" select="substring-after($str, '&#x20;')"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="item">
                    <xsl:value-of select="$str"/>
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template match="tipo:srcLink">
        <xsl:apply-templates/>
        <xsl:variable name="ref-items">
            <xsl:call-template name="getListFromNormal">
                <xsl:with-param name="str" select="normalize-space(@ref)"/>
            </xsl:call-template>
        </xsl:variable>
        <xsl:text>&#160;</xsl:text>
        <xsl:for-each select="$ref-items/*">
            <xsl:text>[</xsl:text>
            <a class="tipo-srcLink" href="#tipo-src{text()}"><xsl:value-of select="text()"/></a>
            <xsl:text>]</xsl:text>
        </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>
